package com.ys.nms.module.business.dal.dataobject.ports;

import com.ys.nms.framework.mybatis.core.dataobject.BaseSlaveDO;
import com.ys.nms.framework.tenant.core.aop.TenantIgnore;
import lombok.*;
import com.baomidou.mybatisplus.annotation.*;

/**
 * 端口 DO
 *
 * @author zzy
 */
@TableName("ports")
@KeySequence("ports_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TenantIgnore
public class PortsDO extends BaseSlaveDO {

    /**
     * ID
     */
    @TableId
    private Integer portId;

    /**
     * 设备ID
     */
    private Integer deviceId;

    /**
     * 端口描述类型
     */
    private String portDescrType;

    /**
     * 端口描述详情
     */
    private String portDescrDescr;

    /**
     * 端口描述电路信息
     */
    private String portDescrCircuit;

    /**
     * 端口描述速度
     */
    private String portDescrSpeed;

    /**
     * 端口描述备注
     */
    private String portDescrNotes;

    /**
     * 接口描述
     */
    @TableField(value = "ifDescr")
    private String ifDescr;

    /**
     * 网络接口名称
     */
    @TableField(value = "ifName")
    private String ifName;

    /**
     * 端口名称
     */
    @TableField(value = "portName")
    private String portName;

    /**
     * 接口索引
     */
    @TableField(value = "ifIndex")
    private Long ifIndex;

    /**
     * 接口速度
     */
    @TableField(value = "ifSpeed")
    private Long ifSpeed;

    /**
     * 上一次接口速度
     */
    @TableField(value = "ifSpeed_prev")
    private Long ifspeedPrev;

    /**
     * 接口连接器是否存在
     */
    @TableField(value = "ifConnectorPresent")
    private String ifConnectorPresent;

    /**
     * 接口操作状态
     */
    @TableField(value = "ifOperStatus")
    private String ifOperStatus;

    /**
     * 接口上一次操作状态
     */
    @TableField(value = "ifOperStatus_prev")
    private String ifoperstatusPrev;

    /**
     * 接口管理状态
     */
    @TableField(value = "ifAdminStatus")
    private String ifAdminStatus;

    /**
     * 接口上一次管理状态
     */
    @TableField(value = "ifAdminStatus_prev")
    private String ifadminstatusPrev;

    /**
     * 接口双工模式
     */
    @TableField(value = "ifDuplex")
    private String ifDuplex;

    /**
     * 接口最大传输单元
     */
    @TableField(value = "ifMtu")
    private Integer ifMtu;

    /**
     * 接口类型
     */
    @TableField(value = "ifType")
    private String ifType;

    /**
     * 接口别名
     */
    @TableField(value = "ifAlias")
    private String ifAlias;

    /**
     * 接口物理地址
     */
    @TableField(value = "ifPhysAddress")
    private String ifPhysAddress;

    /**
     * 接口最后更改时间
     */
    @TableField(value = "ifLastChange")
    private Long ifLastChange;

    /**
     * 接口 VLAN 信息
     */
    @TableField(value = "ifVlan")
    private String ifVlan;

    /**
     * 接口链路聚合信息
     */
    @TableField(value = "ifTrunk")
    private String ifTrunk;

    /**
     * 接口虚拟路由转发信息
     */
    @TableField(value = "ifVrf")
    private Integer ifVrf;

    /**
     * 是否忽略标识
     */
    @TableField(value = "`ignore`")
    private Integer ignore;

    /**
     * 是否禁用标识
     */
    private Integer disabled;

    /**
     * 是否删除标识
     */
    private Integer deleted;

    /**
     * PAgP 操作模式
     */
    @TableField(value = "pagpOperationMode")
    private String pagpOperationMode;

    /**
     * PAgP 端口状态
     */
    @TableField(value = "pagpPortState")
    private String pagpPortState;

    /**
     * PAgP 对端设备 ID
     */
    @TableField(value = "pagpPartnerDeviceId")
    private String pagpPartnerDeviceId;

    /**
     * PAgP 对端学习方法
     */
    @TableField(value = "pagpPartnerLearnMethod")
    private String pagpPartnerLearnMethod;

    /**
     * PAgP 对端接口索引
     */
    @TableField(value = "pagpPartnerIfIndex")
    private Integer pagpPartnerIfIndex;

    /**
     * PAgP 对端组接口索引
     */
    @TableField(value = "pagpPartnerGroupIfIndex")
    private Integer pagpPartnerGroupIfIndex;

    /**
     * PAgP 对端设备名称
     */
    @TableField(value = "pagpPartnerDeviceName")
    private String pagpPartnerDeviceName;

    /**
     * PAgP 以太网通道操作模式
     */
    @TableField(value = "pagpEthcOperationMode")
    private String pagpEthcOperationMode;

    /**
     * PAgP 设备 ID
     */
    @TableField(value = "pagpDeviceId")
    private String pagpDeviceId;

    /**
     * PAgP 组接口索引
     */
    @TableField(value = "pagpGroupIfIndex")
    private Integer pagpGroupIfIndex;

    /**
     * 入站单播数据包数量
     */
    @TableField(value = "ifInUcastPkts")
    private Long ifInUcastPkts;

    /**
     * 上一次入站单播数据包数量
     */
    @TableField(value = "ifInUcastPkts_prev")
    private Long ifinucastpktsPrev;

    /**
     * 入站单播数据包数量差值
     */
    @TableField(value = "ifInUcastPkts_delta")
    private Long ifinucastpktsDelta;

    /**
     * 入站单播数据包速率
     */
    @TableField(value = "ifInUcastPkts_rate")
    private Long ifinucastpktsRate;

    /**
     * 出站单播数据包数量
     */
    @TableField(value = "ifOutUcastPkts")
    private Long ifOutUcastPkts;

    /**
     * 上一次出站单播数据包数量
     */
    @TableField(value = "ifOutUcastPkts_prev")
    private Long ifoutucastpktsPrev;

    /**
     * 出站单播数据包数量差值
     */
    @TableField(value = "ifOutUcastPkts_delta")
    private Long ifoutucastpktsDelta;

    /**
     * 出站单播数据包速率
     */
    @TableField(value = "ifOutUcastPkts_rate")
    private Long ifoutucastpktsRate;

    /**
     * 入站错误数据包数量
     */
    @TableField(value = "ifInErrors")
    private Long ifInErrors;

    /**
     * 上一次入站错误数据包数量
     */
    @TableField(value = "ifInErrors_prev")
    private Long ifinerrorsPrev;

    /**
     * 入站错误数据包数量差值
     */
    @TableField(value = "ifInErrors_delta")
    private Long ifinerrorsDelta;

    /**
     * 入站错误数据包速率（单位：包/秒）
     */
    @TableField(value = "ifInErrors_rate")
    private Long ifinerrorsRate;

    /**
     * 出站错误数据包数量
     */
    @TableField(value = "ifOutErrors")
    private Long ifOutErrors;

    /**
     * 上一次出站错误数据包数量
     */
    @TableField(value = "ifOutErrors_prev")
    private Long ifouterrorsPrev;

    /**
     * 出站错误数据包数量差值
     */
    @TableField(value = "ifOutErrors_delta")
    private Long ifouterrorsDelta;

    /**
     * 出站错误数据包速率（单位：包/秒）
     */
    @TableField(value = "ifOutErrors_rate")
    private Long ifouterrorsRate;

    /**
     * 入站字节数（流量统计）
     */
    @TableField(value = "ifInOctets")
    private Long ifInOctets;

    /**
     * 上一次入站字节数
     */
    @TableField(value = "ifInOctets_prev")
    private Long ifinoctetsPrev;

    /**
     * 入站字节数差值
     */
    @TableField(value = "ifInOctets_delta")
    private Long ifinoctetsDelta;

    /**
     * 入站流量速率（单位：字节/秒）
     */
    @TableField(value = "ifInOctets_rate")
    private Long ifinoctetsRate;

    /**
     * 出站字节数
     */
    @TableField(value = "ifOutOctets")
    private Long ifOutOctets;

    /**
     * 上一次出站字节数
     */
    @TableField(value = "ifOutOctets_prev")
    private Long ifoutoctetsPrev;

    /**
     * 出站字节数差值
     */
    @TableField(value = "ifOutOctets_delta")
    private Long ifoutoctetsDelta;

    /**
     * 出站流量速率（单位：字节/秒）
     */
    @TableField(value = "ifOutOctets_rate")
    private Long ifoutoctetsRate;

    /**
     * 最后一次轮询时间（时间戳）
     */
    @TableField(value = "poll_time")
    private Integer pollTime;

    /**
     * 上一次轮询时间
     */
    @TableField(value = "poll_prev")
    private Integer pollPrev;

    /**
     * 轮询间隔时间（秒）
     */
    @TableField(value = "poll_period")
    private Integer pollPeriod;

    /**
     * 是否是关联链路 0否 1是
     */
    @TableField(value = "is_critical")
    private Integer isCritical;

    /**
     * 是否展示 0否 1是
     */
    @TableField(value = "is_show")
    private Boolean isShow;

    /**
     * 实际上行带宽
     */
    @TableField(value = "bandwidth")
    private Integer bandwidth;

    /**
     * 入站丢包数量
     */
    @TableField(value = "ifInLoss")
    private Long ifInLoss;

    /**
     * 出站丢包数量
     */
    @TableField(value = "ifOutLoss")
    private Long ifOutLoss;

    /**
     * 接口非单播包转发数（in）
     */
    @TableField(value = "ifInNoUnicastForward")
    private Long ifInNoUnicastForward;

    /**
     * 接口非单播包转发数（out）
     */
    @TableField(value = "ifOutNoUnicastForward")
    private Long ifOutNoUnicastForward;

    /**
     * 丢弃的未知协议包
     */
    @TableField(value = "ifUnknownDrop")
    private Long ifUnknownDrop;
}